Docker安装Maddy Mail Server |
您所在的位置:网站首页 › docker rocketchat › Docker安装Maddy Mail Server |
![]() 最近需要用到smtp服务,想了下自建还是maddy最简单、方便。遂用docker搭建了一个,记录下过程。 以前我也写过一篇手动安装的文章,如有需要可以在本博客搜索下,这里就不多说了。 下面使用的是官方的image,但整个配置步骤与官方文档有一些出入,因为我个人觉得官方的方法略繁琐。 按官方文档走的话,容器不能一次性启动完成,第一次启动肯定是失败的,得等到你把tls证书加载好再重启一遍容器才行,个人觉得不太优雅。。另外官方用的是命名卷,备份起来没有直接挂载主机目录方便,所以我改了下配置。 安装docker: apt -y update apt -y install curl nginx python3-certbot-nginx curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh新建docker-compose.yml: mkdir -p /opt/maddy && cd /opt/maddy && nano docker-compose.yml写入如下配置: version: '3.7' services: maddy: image: foxcpp/maddy:0.6 container_name: maddy restart: unless-stopped ports: - "25:25" - "143:143" - "465:465" - "587:587" - "993:993" volumes: - ./maddy-data:/data创建maddy-data目录: mkdir maddy-data然后在maddy-data目录里面下载一个maddy.conf配置文件: curl -L https://raw.githubusercontent.com/foxcpp/maddy/master/maddy.conf.docker -o maddy-data/maddy.conf编辑maddy.conf: nano maddy-data/maddy.conf里面有很多配置,但实际上没有多少需要改动的,只需要注意下面这些配置: $(hostname) = {env:MADDY_HOSTNAME} $(primary_domain) = {env:MADDY_DOMAIN} $(local_domains) = $(primary_domain) tls file /data/tls/fullchain.pem /data/tls/privkey.pem将其修改为: $(hostname) = mx1.example.com $(primary_domain) = example.com $(local_domains) = $(primary_domain) tls file /data/fullchain.pem /data/privkey.pem现在准备tls证书,在刚才安装docker的时候我们一并安装了nginx和certbot,所以下面就利用这两个软件来申请证书。 首先新建一个nginx配置文件: nano /etc/nginx/sites-available/maddy写入如下配置: server { listen 80; server_name mx1.example.com; }启用新的配置: ln -s /etc/nginx/sites-available/maddy /etc/nginx/sites-enabled/maddy签发证书: certbot --nginx完成之后将证书和密钥复制到对应的路径: cp /etc/letsencrypt/live/mx1.example.com/fullchain.pem /opt/maddy/maddy-data/fullchain.pem cp /etc/letsencrypt/live/mx1.example.com/privkey.pem /opt/maddy/maddy-data/privkey.pem启动: docker compose up -d创建账号: docker exec -it maddy maddy creds create [email protected] docker exec -it maddy maddy imap-acct create [email protected]简单说下为什么这么改容器也能正常运行,首先我看了下官方的Dockerfile:https://github.com/foxcpp/maddy/blob/master/Dockerfile 入口点是这样的: ENTRYPOINT ["/bin/maddy", "-config", "/data/maddy.conf"]也就意味着,程序默认用/data/maddy.conf这个配置文件启动服务,那我直接在主机准备一个maddy.conf挂载进去不就可以了。 再加上官方提供的环境变量有限,还不如直接编辑配置文件方便。 这篇文章是我于2023年1月25日写的,但是一直放在草稿里面没有发布。。今天重新搭建测试了一遍,确定这样配置是没问题的,就发出来了: |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |